// @ts-nocheck
/**
 * example 3
 * 验证在if块级作用域中的变量提升
 * 结论：
 *      函数和变量都会得到提升，但是只有在进入了对应的块级作用域的时候，函数才能被调用，而变量只有执行了赋值语句才有值
 *
 *
 * ps： node环境下的var不会将变量挂载到global上
 *      块级作用域中不能重复声明
 */

// 测试变量
console.log(a); // undefined
const flag = true;
if (flag) {
  var a = 3;
} else {
  var a = 4;
}
console.log(a);

// ---------------------------------------------------
console.log("------------分割线------------");
// ---------------------------------------------------

// 测试函数
console.log(fun1); // undefined
console.log(fun2); // undefined
if (flag) {
  function fun2() {}
} else {
  function fun1() {}
}
console.log(fun1); // undefined
console.log(fun2); // [Function: fun2]
